package com.codingvip.array;

public class RemoveDuplicates {
    /**
     * 给定数组 nums = [1,1,2],
     * <p>
     * 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
     *
     * @return
     */

    public static void main(String[] args) {
        int[] nums = {0,0,1,1,1,2,2,3,3,4};
//        int[] nums = {1, 1, 2};
        RemoveDuplicates remove = new RemoveDuplicates();
        System.out.println(remove.removeDuplicates(nums));

    }

    public int removeDuplicates(int[] nums) {
        assert nums != null;
        if (nums.length < 2) {
            return nums.length;
        }
        int cur = 0;
        int ahead = 1;
        while (ahead < nums.length) {
            if (nums[ahead] != nums[cur]) {
                nums[++cur] = nums[ahead];
            }
            ahead++;
        }
        return cur + 1;
    }
}

//        if(nums == null || nums.length == 0) {
//            return 0;
//        }
//        int p = 0;
//        int q = 1;
//        while(q < nums.length){
//            if(nums[p] != nums[q]){
//                if(q - p > 1){
//                    nums[p+1] = nums[q];
//                }
//                p++;
//            }
//            q++;
//        }
//        return p + 1;
//
//    }
